import Vue from 'vue'
import VueRouter from 'vue-router'
// import ElementUI from 'element-ui' //全部组件都加载
import {
	Input,
	Badge,
	Pagination,
	Button,
	Loading,
	Alert,
	Icon,
	Dialog,
	MessageBox,
	Message,
	Notification,
	Popover,
	Tooltip,
	Dropdown,
	DropdownMenu,
	DropdownItem,
	Drawer,
	Backtop,
	Select,
	Option,
	DatePicker,
	Image,
	Upload,
	RadioGroup,
	Radio,
	Divider,
	RadioButton
} from 'element-ui'
import App from './App.vue'
import router from '@/router/router'
import store from '@/store/store'

Vue.config.productionTip = false//阻止启动生产消息


/*css 注意，这里的引入顺序应该有效？*/
import '@/assets/base.css'
import '@/assets/main.css'
import '@/assets/bootstrap-layout.css'
import '@/views/manage/manage.global.less'
import 'element-ui/lib/theme-chalk/index.css';
import 'nprogress/nprogress.css'


/*
*tronWeb node版？？
*如果不能使用，只能在index.html中直接引用web版
 */
// import tronWeb from '@/libs/TronWeb.node.js' //你妈的，不能用import
//window.TronWeb =  require('./libs/TronWeb.node.js') //需要使用require,但有个问题，fix: https://www.jianshu.com/p/acec542bcfc4


/****************************其它插件******************/
// import axios from 'axios' // axios
// Vue.prototype.$axios = axios
// import VueSwal from 'vue-swal' //一个漂亮的弹窗 https://www.jq22.com/demo/jQuerySweetAlert220160627/
// Vue.use(VueSwal) //https://www.sweetalert2.cn/


/************************vue参数与插件*****************/
Vue.use(VueRouter)
//Vue.use(ElementUI)//装入全部elm插件
//element插件按需导入
Vue.use(Input);
Vue.use(Badge);
Vue.use(Button)
Vue.use(Icon)
Vue.use(Alert)
Vue.use(Dialog)
Vue.use(Popover)
Vue.use(Tooltip)
Vue.use(Dropdown)
Vue.use(DropdownMenu)
Vue.use(DropdownItem)
Vue.use(Pagination)
Vue.use(Drawer)
Vue.use(Backtop)
Vue.use(Select)
Vue.use(Option)
Vue.use(Loading.directive)
Vue.use(DatePicker)
Vue.use(Image)
Vue.use(Upload)
Vue.use(RadioGroup)
Vue.use(Radio)
Vue.use(Divider)
Vue.use(RadioButton)
//方法类的插件不需要use，否则会相当于调用
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$confirm = MessageBox.confirm;
Vue.prototype.$prompt = MessageBox.prompt;
Vue.prototype.$notify = Notification;
Vue.prototype.$message = Message;



// 注意，这里是当store没有使用持久化的时候需要处理，否则就不用
//处理全局语言
let _langSet = localStorage.getItem('lang')
_langSet && store.commit('SET_LP',_langSet)

//读取上次记录的trx价格
let _trxPrice = localStorage.getItem('trxPrice')
_trxPrice && store.commit('SET_TRX_PRICE',_trxPrice)

//处理全局语言
let _trxToUstd = localStorage.getItem('toUsdtPrice')
_trxToUstd && store.commit('SET_TOKEN_USDT_PRICE',_trxToUstd)



//jquery ，也会在主vue挂载之后正常执行
$(function () {

})


/**
 * js 库注册 日期格式化代码 调用方法为 new Data().format(fmt);
 * @param {Object} fmt 日期格式化模版  eg:'yyyy-MM-dd hh:mm:ss'
 * 由于没有地方放，就只好先放这里
 */
Date.prototype.format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
    }
    return fmt;
}



///////////////////////////   创建vue实例，并挂载   ///////////////////////////////

window.app = new Vue({
    router,
    store,
	data:function () {
    	return {
		    /**
		     * 使用事件广播，注意，监听事件会重复增加，需要销毁，查看：https://www.jianshu.com/p/fde85549e3b0
		     * 而且要注意事件销毁与创建的先后顺序，由于切换路由的时序，上一个路由的销毁是在下一个路由创建之后
		     * 所以，创建监听事件，需要在mounted里面
		     */
    		eventHub:new Vue()
		}
	},
    render: h => h(App),
	mounted () {
    	//挂载之后删除body上的loadingcss
		document.getElementsByTagName('body')[0].classList.remove('loading')
	}
}).$mount('#app')




setTimeout(() => {
	// app.$mount('#app')
},500000)
